package com.mrzhou.study.struct.tree.binary;

/**
 * 树节点, 这里使用链式存储保存二叉树
 *
 */
public class TreeNode<T> {

    protected TreeNode<T> leftNode; // 二叉树左节点指针域

    protected TreeNode<T> rightNode; // 二叉树右节点指针域

    protected T data; // 数据域

    protected TreeNode() { }

    protected TreeNode(T data) {
        this.data = data;
    }

    /**
     * 当前节点是否为叶子节点
     */
    public boolean isLeaf() {
        return this.leftNode == null && this.rightNode == null;
    }

    public String toString() {
        if(this.data == null) {
            return null;
        }
        return data.toString();
    }

}
